package com.testing.class2;

import javax.sound.midi.Soundbank;

public class LogicTest {
    public static void main(String[] args) {
        int x=3;
        int y=15;
//        int a=4,b=5;
        //(x=10) == 10  先对x进行赋值运算  x=10之后，用x的值和10进行比较。
        //看到 && 先考虑短路原则， 10==11 为false 直接可以得到结果为false  (y=30)==30不再计算。
        System.out.println("---------------第一位为假时，&&短路，不计算第二位表达式------------------------");
         boolean  a = (x=10)==11 && (y=30)==30 ;
        System.out.println(x);
        System.out.println(y);
        System.out.println(a);

        //第一位为真时进行&&运算
        System.out.println("--------------第一位为真时，&&运算计算第二位表达式------------------");
        boolean  b = (x=10)==10 && (y=30)==30 ;
        System.out.println(x);
        System.out.println(y);
        System.out.println(b);

        //按位与运算，即使第一位算的结果是假，也要计算第二位表达式
        System.out.println("-----------按位与运算，即使第一位算的结果是假，也要计算第二位表达式-------------");
        boolean c =(x=15)==16 & (y=130)==130 ;
        System.out.println(x);
        System.out.println(y);
        System.out.println(c);

        //非运算
        //由于非运算优先级极高，所以运算的时候，下面的代码会报错，!先和x结合之后，再运算 ！x 是否大于15
        //平常用的时候，看到!就注意在后面加括号。
//        boolean d = !x>15 && y==30;
    }
}
